package travelDream.managedBean;

import java.io.Serializable;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import travelDream.bean.GestoreProdottoBase;
import travelDream.dto.EscursioneDTO;

@ManagedBean(name = "modificaEscursioneManagedBean")
@SessionScoped
public class ModificaEscursioneManagedBean implements Serializable{
	
private static final long serialVersionUID = 1L;
	
	@EJB
	private GestoreProdottoBase gestPB;
	
	private EscursioneDTO escursione;
	private EscursioneDTO vecchiaEscursione;
	
	public EscursioneDTO getEscursione() {
		return escursione;
	}

	public void setEscursione(EscursioneDTO escursione) {
		this.escursione = escursione;
	}

	public void modificaEscursione() {
		if (this.escursione.getNome().equals("") || this.escursione.getPrezzo()==null || this.escursione.getDescrizione().equals("") || this.escursione.getLuogo_Fruizione().equals("")) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Errore", "Tutti i campi sono obbligatori"));
		}
		else {
			try {
				
				EscursioneDTO modificamiDaOra = gestPB.modificaEscursione(this.escursione,this.vecchiaEscursione);
				this.caricaParametri(modificamiDaOra);
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"Info", "Modifica effettuata correttamente"));
				}
			catch(Exception e) {
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Errore", "Modifica non effettuata"));
			}
		}
		
	}
	
	public String parametriEscursione(EscursioneDTO escursione){
		this.caricaParametri(escursione);
		return "modifica_escursione.xhtml?faces-redirect=true";
	}
	
	public void caricaParametri(EscursioneDTO escursione){
		this.escursione = new EscursioneDTO();
		this.vecchiaEscursione = new EscursioneDTO();
		this.escursione.setNome(escursione.getNome());
		this.vecchiaEscursione.setNome(escursione.getNome());
		this.vecchiaEscursione.setId(escursione.getId());
		this.escursione.setId(escursione.getId());
		this.vecchiaEscursione.setLuogo_Fruizione(escursione.getLuogo_Fruizione());
		this.escursione.setLuogo_Fruizione(escursione.getLuogo_Fruizione());
		this.vecchiaEscursione.setPrezzo(escursione.getPrezzo());
		this.escursione.setPrezzo(escursione.getPrezzo());
		this.vecchiaEscursione.setDescrizione(escursione.getDescrizione());
		this.escursione.setDescrizione(escursione.getDescrizione());
		this.vecchiaEscursione.setInVendita(escursione.getInVendita());
		this.escursione.setInVendita(escursione.getInVendita());
		this.vecchiaEscursione.setEliminato(true);
		this.escursione.setEliminato(false);
	}
	
}
